1. Field of the Invention
The present invention relates to an error correcting process in a data reading operation of a recording/reproduction device such as a floppy disk drive.
2. Description of the Related Art
Data stored in a floppy disk serving as a storage medium may not be correctly read due to scratches in the floppy disk or a reading error in a device. For this reason, in data reading from the storage medium, an error correcting process for data is required.
In order to improve the reliability of the data stored in the floppy disk, the error correction in data reading has two or more stages.
A conventional floppy disk drive will be described below with reference to FIGS. 3 and 4. FIG. 3 is a block diagram showing a conventional floppy disk drive in which data is read from a floppy disk 101, error correction for the read data is performed, and the data subjected to the error correction is output to a host computer 110.
Here, for example, data correction of the first stage is defined as C1 correction, and data correction of the second stage is defined as C2 correction. For example, the C1 correction and the C2 correction will be described below on the assumption that "Reed-Solomon code" is used in each of the C1 correction and the C2 correction.
FIG. 4 shows a data storage format on a floppy disk. Referring to FIG. 4, for example, "data 1" to "data 80" are blocks (to be referred to as sectors hereinafter) of original data which are stored. Each block has a data capacity of 256 bytes.
"C1 correction data" paired with each of "data 1" to "data 80" is redundant data (to be referred to as inspection data hereinafter) for performing inspection for an error of original 256-byte data.
"C2 correction data" is inspection data for performing error correction to each of the sectors of "data 1" to "data 80" in units of bytes. More specifically, "C2 correction data" is inspection data for performing error correction corresponding to regions A1 to A256 obtained by dividing information data in each of the sectors of "data 1" to "data 80" in units of bytes.
In addition, "C1 correction data" also exists in "C2 correction data", and error correction form "C2 correction data" is performed in C1 correction.
For example, in FIG. 3, a control circuit 102 causes a reader 101 to read data from a floppy disk 101a. The data is stored in a buffer 107. At the same time, the control circuit 102 causes a C1 correction unit 103 to calculate a syndrome value of each sector to store the calculated syndrome value in a buffer 105-1.
Here, the syndrome value in C1 correction represents an addition result between an integration value of byte data in the sectors and corresponding "C1 correction data" and an addition result between an integration value obtained by weighting the bytes in the sectors and integrating the weighted bytes and corresponding C1 correction data. If syndrome value is "0", it is considered that no read error exists.
The C1 correction unit 103 performs error correction for data stored in the buffer 107 on the basis of the syndrome value stored in the buffer 105-1.
Upon completion of the calculation and correction of the syndrome value in the C1 correction, the control circuit 102 cancels "C1 correction data" because "C1 correction data" is unnecessary. The control circuit 102 transfers the information data and "C2 correction data" from the buffer 107 to a C2 correction circuit 104.
The C2 correction circuit 104 calculates syndrome values in the regions A1 to A256 to store the calculated syndrome values in a buffer 105-2.
Here, the syndrome value in C2 correction represents an addition result between an integration value of byte data in the regions and corresponding "C2 correction data" and an addition result between an integration value obtained by weighting the bytes in the sectors and integrating the weighted bytes and corresponding "C2 correction data". If syndrome value is "0", it is considered that no read error exists.
In error correction performed by the C1 correction unit 103, when the number of error bits in a sector to be corrected is larger than the number of error bits which can be maximally corrected as "C1 correction data", the C2 correction circuit 104 solves a predetermined equation on the basis of the syndrome value to correct error bits of the corresponding region of the regions A1 to A256.
Upon completion of the calculation of the syndrome value in the C2 correction, the control circuit 102 cancels "C2 correction data" because "C2 correction data is unnecessary.
The moment data transfer from the data reader 101 to the buffer 107 and an error correcting process are performed, the control circuit 102 forms a path between a buffer 108 and the host computer 110 by means of a switching circuit 109. As a result, error-corrected information data stored in the buffer 108 is transferred to the host computer 110.
However, the above floppy disk drive requires at least 20 k(kilo) byte.times.2=40 kbyte as the bytes of the buffers 107 and 108. In addition, since the C1 correction unit 103, the C2 correction circuit 104, and the buffer 105 are required, a conventional floppy disk drive 100 increases in circuit scale, and the cost cannot be easily reduced.
Furthermore, even if an error does not occur in data reading, upon completion of a loading operation, 20-kbyte information data is transferred to the host computer 110, a disadvantage being that the conventional floppy disk drive 100 requires a long time to read/transfer the information data.